package br.com.sisgerenciamento.cliente;

import java.util.ArrayList;
import java.util.Date;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMapping;

import br.com.sisgerenciamento.dto.cliente.ClienteDTO;
import br.com.sisgerenciamento.dto.endereco.EnderecoDTO;
import br.com.sisgerenciamento.model.cliente.TipoClienteEnum;
import br.com.sisgerenciamento.model.endereco.TipoEnderecoEnum;
import br.com.sisgerenciamento.util.UtilActionForm;
import br.com.sisgerenciamento.utilidades.EstadosBrasilEnum;
import br.com.sisgerenciamento.utilidades.TreatDate;

public class ClienteForm  extends UtilActionForm{
	
	private static final long serialVersionUID = -7881866693344984024L;
	
	private Integer indexEndereco;
	private String codigoEndereco;
	
	private String nomeCliente;
	private Long codigoCliente;
	
	private ClienteDTO cliente = new ClienteDTO();

	private ArrayList<EstadosBrasilEnum> estados = EstadosBrasilEnum.listar();
	private ArrayList<TipoEnderecoEnum> tipoEndereco = TipoEnderecoEnum.listar();
	
	private EnderecoDTO endereco = new EnderecoDTO();
	
	private ArrayList<EnderecoDTO> enderecoDTOs = new ArrayList<EnderecoDTO>();
	private ArrayList<EnderecoDTO> enderecoExcluir = new ArrayList<EnderecoDTO>();
	
	
	private ArrayList<ClienteDTO> clienteDTOs = new ArrayList<ClienteDTO>();
	
	public ClienteDTO getCliente() {
		return cliente;
	}
	public void setCliente(ClienteDTO cliente) {
		this.cliente = cliente;
	}
	public ArrayList<EstadosBrasilEnum> getEstados() {
		return estados;
	}
	public void setEstados(ArrayList<EstadosBrasilEnum> estados) {
		this.estados = estados;
	}
	public EnderecoDTO getEndereco() {
		return endereco;
	}
	public void setEndereco(EnderecoDTO endereco) {
		this.endereco = endereco;
	}
	public ArrayList<EnderecoDTO> getEnderecoDTOs() {
		return enderecoDTOs;
	}
	public void setEnderecoDTOs(ArrayList<EnderecoDTO> enderecoDTOs) {
		this.enderecoDTOs = enderecoDTOs;
	}
	public ArrayList<TipoEnderecoEnum> getTipoEndereco() {
		return tipoEndereco;
	}
	public void setTipoEndereco(ArrayList<TipoEnderecoEnum> tipoEndereco) {
		this.tipoEndereco = tipoEndereco;
	}
	
	public Integer getIndexEndereco() {
		return indexEndereco;
	}
	public void setIndexEndereco(Integer indexEndereco) {
		this.indexEndereco = indexEndereco;
	}
	public String getCodigoEndereco() {
		return codigoEndereco;
	}
	public void setCodigoEndereco(String codigoEndereco) {
		this.codigoEndereco = codigoEndereco;
	}
	public ArrayList<EnderecoDTO> getEnderecoExcluir() {
		return enderecoExcluir;
	}
	public void setEnderecoExcluir(ArrayList<EnderecoDTO> enderecoExcluir) {
		this.enderecoExcluir = enderecoExcluir;
	}
	public String getNomeCliente() {
		return nomeCliente;
	}
	public void setNomeCliente(String nomeCliente) {
		this.nomeCliente = nomeCliente;
	}
	public ArrayList<ClienteDTO> getClienteDTOs() {
		return clienteDTOs;
	}
	public void setClienteDTOs(ArrayList<ClienteDTO> clienteDTOs) {
		this.clienteDTOs = clienteDTOs;
	}
	public Long getCodigoCliente() {
		return codigoCliente;
	}
	public void setCodigoCliente(Long codigoCliente) {
		this.codigoCliente = codigoCliente;
	}
	
	
	public void limparForm(){
		this.cliente = new ClienteDTO();
		this.endereco = new EnderecoDTO();
		this.enderecoDTOs = new ArrayList<EnderecoDTO>();
		cliente.setDataCadastro(TreatDate.formatDateTime(new Date()));
		cliente.setTipo(TipoClienteEnum.VAREJO_1.getValor());
		cliente.setStatus("1");
		this.clienteDTOs = new ArrayList<ClienteDTO>();
		this.codigoCliente = null;
		this.nomeCliente = "";
		
	}

	
	@Override
	public ActionErrors validate(ActionMapping mapping,
			HttpServletRequest request) {
		limparMensagem(request);
		return super.validate(mapping, request);
	}
	
	
	
	
}
